package com.hnas.sys.orm;
// default package

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;


/**
 * User entity. @author MyEclipse Persistence Tools
 */
@Entity
@DiscriminatorValue("User")
public class User extends BasicUser {


    /**
	 * 
	 */
	private static final long serialVersionUID = -8149578944942492965L;

//     private String enterGroupTime;
//     private int showOrder;//显示顺序，默认为0
     
//     private Passport passport;//护照信息
     
     @ManyToMany (cascade = CascadeType.REFRESH) 
 	@JoinTable (name = "sys_user_authority", inverseJoinColumns =  @JoinColumn(name = "authority_id" ),//被维护端外键 
 					joinColumns =  @JoinColumn (name = "user_id" ))//维护端外键 
     private Set<Authority> authoritys = new HashSet<Authority>(0);
     
    

    // Constructors

    /** default constructor */
    public User() {
    }

	/** minimal constructor */
    public User(String account, String password) {
        super.setAccount( account);
        super.setPassword(password);
    }
   
    // Property accessors
//    @Id @GeneratedValue(strategy=IDENTITY)
//    
//    @Column(name="id", unique=true, nullable=false)

    
  
//    
//    @Column(name="user_no", unique=true, length=50)
//
//    public String getUserNo() {
//        return this.userNo;
//    }
//    
//    public void setUserNo(String userNo) {
//        this.userNo = userNo;
//    }
//    
//    @Column(name="user_name", length=50)
//
//    public String getUserName() {
//        return this.userName;
//    }
//    
//    public void setUserName(String userName) {
//        this.userName = userName;
//    }
    
//    @Column(name="company_id")
//
//    public long getCompanyId() {
//        return this.companyId;
//    }
//    
//    public void setCompanyId(long companyId) {
//        this.companyId = companyId;
//    }
    
//    @Column(name="department_id")
//
//    public long getDepartmentId() {
//        return this.departmentId;
//    }
//    
//    public void setDepartmentId(long departmentId) {
//        this.departmentId = departmentId;
//    }
    
//    @Column(name="department_name")
//
//    public String getDepartmentName() {
//        return this.departmentName;
//    }
//    
//    public void setDepartmentName(String departmentName) {
//        this.departmentName = departmentName;
//    }
    
//    @Column(name="post_name", length=50)
//
//    public String getPostName() {
//        return this.postName;
//    }
//    
//    public void setPostName(String postName) {
//        this.postName = postName;
//    }
//    
//    @Column(name="level_name", length=50)
//
//    public String getLevelName() {
//        return this.levelName;
//    }
//    
//    public void setLevelName(String levelName) {
//        this.levelName = levelName;
//    }
//    
//    @Column(name="management_level", length=50)
//
//    public String getManagementLevel() {
//        return this.managementLevel;
//    }
//    
//    public void setManagementLevel(String managementLevel) {
//        this.managementLevel = managementLevel;
//    }
//    
//    @Column(name="work_type_name", length=50)
//
//    public String getWorkTypeName() {
//        return this.workTypeName;
//    }
//    
//    public void setWorkTypeName(String workTypeName) {
//        this.workTypeName = workTypeName;
//    }
//    
//    @Column(name="work_type_id", length=50)
//
//    public String getWorkTypeId() {
//        return this.workTypeId;
//    }
//    
//    public void setWorkTypeId(String workTypeId) {
//        this.workTypeId = workTypeId;
//    }
//
//	/**
//	 * @return the management
//	 */
//    @Column(name="management")
//    public boolean isManagement() {
//		return management;
//	}
//
//	public void setManagement(boolean management) {
//		this.management = management;
//	}
//
//
//	@Column(name="retirement")
//	public boolean isRetirement() {
//		return retirement;
//	}
//
//	public void setRetirement(boolean retirement) {
//		this.retirement = retirement;
//	}
//
//	@Column(name="inpost")
//    public int getInpost() {
//        return this.inpost;
//    }
//    
//    public void setInpost(int inpost) {
//        this.inpost = inpost;
//    }
//    
//    @Column(name="formal")
//
//    public int getFormal() {
//        return this.formal;
//    }
//    
//    public void setFormal(int formal) {
//        this.formal = formal;
//    }
//    
//    @Column(name="card_type", length=50)
//
//    public String getCardType() {
//        return this.cardType;
//    }
//    
//    public void setCardType(String cardType) {
//        this.cardType = cardType;
//    }
//    
//    @Column(name="card_no", length=50)
//
//    public String getCardNo() {
//        return this.cardNo;
//    }
//    
//    public void setCardNo(String cardNo) {
//        this.cardNo = cardNo;
//    }
    
//    @Column(name="telephone", length=50)
//
//    public String getTelephone() {
//        return this.telephone;
//    }
//    
//    public void setTelephone(String telephone) {
//        this.telephone = telephone;
//    }
    



    /**
	 * @return the authorities
	 */
    
	public Set<Authority> getAuthoritys() {
		return authoritys;
	}

	/**
	 * @param authorities the authorities to set
	 */
	public void setAuthoritys(Set<Authority> authoritys) {
		this.authoritys = authoritys;
	}

	

//	@ManyToOne(fetch=FetchType.LAZY)
//    @JoinColumn(name="company_id")
//
//	public Department getCompany() {
//		return company;
//	}
//
//	public void setCompany(Department company) {
//		this.company = company;
//	}

	
//	@ManyToOne(fetch=FetchType.LAZY)
//    @JoinColumn(name="department_id")
//
//	public Department getDepartment() {
//		return department;
//	}
//
//	public void setDepartment(Department department) {
//		this.department = department;
//	}
//
//	@Column(name="enter_group_time")
//	public String getEnterGroupTime() {
//		return enterGroupTime;
//	}
//
//	public void setEnterGroupTime(String enterGroupTime) {
//		this.enterGroupTime = enterGroupTime;
//	}
//	@ManyToOne(fetch=FetchType.LAZY)
//    @JoinColumn(name="passport_id")
//	public Passport getPassport() {
//		return passport;
//	}
//
//	public void setPassport(Passport passport) {
//		this.passport = passport;
//	}
//	@Column(name="show_Order")
//	public int getShowOrder() {
//		return showOrder;
//	}
//
//	public void setShowOrder(int showOrder) {
//		this.showOrder = showOrder;
//	}
   








}